Method for decoding inertia-effect bit-flip ldpc codes

ABSTRACT

A method for decoding a Low Density Parity Check code. At each decoding iteration, as long as the syndrome of the estimated word indicates an error, a set ({tilde over (F)}) of the least reliable bits of the word is determined as those where the value of a local energy function ({tilde over (E)} n ) is less than a threshold value. The local energy value of a bit includes a first component proportional to the correlation between this bit and a sample corresponding to the observed signal, a second component representing the number of non-satisfied constraints wherein the bit acts, and a third component decreasing with the number (   n ) of iterations made since the last flipping of this bit. The bits of the estimated word belonging to this set are flipped, where applicable with a predetermined probability, to provide a new estimated word at the following iteration.

TECHNICAL FIELD

The present invention relates in general terms to LDPC (Low DensityParity Check) codes and more particularly decoding methods of theso-called GDBF (Gradient Descent Bit Flipping) type. It is in particularapplicable to communication systems or data-recording systems using LDPCcodes.

PRIOR ART

LDPC codes, initially introduced by R. Gallagher in his article entitled“Low density parity check codes” published in IEEE Trans. Inform.Theory, vol. IT-8, pages 21-28, 1962, are now used in a large number ofcommunication standards such as G.hn/G.9960 (ITU-T standard forpower-line, telephone-line and coaxial-cable communications), IEEE802.3an (10 Giga-bit/s Ethernet on twisted pair), IEEE 802.16e (WiMAXstandard for microwave communications), IEEE 802.11n-2009 (Wi-Fistandard), CMMB (China Multimedia Mobile Broadcasting),DVB-S2/DVB-T2/DVB-C2 (Digital Video Broadcasting, 2^(nd) generation),DMB-T/H (Digital video broadcasting), DOCSIS 3.1 (Data Over CableService Interface Specification), or 5G-NR (New Radio, 5^(th)generation).

A large number of methods for decoding LDPC codes are known from theprior art. A first iterative decoding method, known as bit flipping(BF), originally proposed by R. Gallagher by way of example, isparticularly simple but does not make it possible to obtain goodperformance in terms of error rate as a function of the signal to noiseratio. It was quickly supplanted by an iterative decoding method knownas message passing or MP, more recently renamed belief propagation (BP)decoding method. This method uses a representation of an LDPC code bymeans of a bipartite graph (Tanner graph), consisting of two separatesubsets, a first subset of nodes being associated with the bits of theword to be decoded (referred to as variable nodes) and a second subsetof nodes associated with the constraints of the code (referred to ascontrol nodes), typically parity checks. The decoding is based on asequence of iterations, each iteration involving exchanges of round-tripmessages between the variable nodes and the control nodes of the graph.More precisely, a message transmitted by a variable node to a controlnode represents the “belief” of the variable node as to the value of thecorresponding coded bits. Conversely, the message transmitted by acontrol node to a variable node represents the “belief” of the controlnode as to the value of the coded bit corresponding to the destinationvariable node. In practice, these messages are defined in terms ofprobabilities, or logarithmic likelihood ratios (LLRs).

The BP decoding method has given rise to numerous variants such as the“Sum-Product”, “Min-Sum”, “Min-Max” etc. decoding algorithms. Thesemethods make it possible to obtain good performance in terms of errorrate as a function of the signal to noise ratio but are generallyintensive in terms of resources and computing time.

The emergence of communication requirements at very high bit rate and/orlow latency has given rise to a regain in interest for bit-flip decodingmethods. Recently, a BF decoding method that is particularly attractivebecause of the simplicity thereof was proposed in the article by T.Wadayama et al. entitled “Gradient descent bit flipping algorithms fordecoding LDPC codes” published in IEEE Trans. on Comm., vol. 58 No. 6,June 2010, pp. 1610-1614. BF decoding is formulated here in the form ofan optimisation problem and the code word, the solution to this problem,is obtained by means of a gradient descent algorithm. This decodingmethod, called GDBF (Gradient Descent Bit Flipping) makes it possible toobtain substantially better performance than the Gallagher BF decodingmethod but nevertheless suffers from a major drawback inherent ingradient descent algorithms when the cost function is highly non-linear,namely when the solution obtained is very often only a local minimum. Inother words, the GDBF decoding method is suboptimum in that it canprovide only a local minimum of the cost function (or a local maximum ofthe objective function). Thus, the performance thereof still remainsinferior to decoding methods of the BP type.

Different variants of the GDBF methods have been proposed in order toremedy this problem of suboptimality, in particular the PGDBF(Probabilistic GDBF) method and the NGDBF (Noisy GDBF) method. These twomethods are based on the principle that adding a random noise in thegradient descent makes it possible to depart from a local optimum. As weshall see later, random noise is added at the level of the decision rulefor flipping the least reliable bits.

We shall present first of all the GDBF decoding method before presentingthe PGDBF and NGDBF variants thereof.

We consider an LDPC code defined by its Tanner graph TG (or in anequivalent fashion by its parity matrix H, the edges of the graphcorresponding to the non-zero elements of the matrix), said graphcomprising N variable nodes and M control nodes (each control nodecorresponding to a parity equation or in an equivalent fashion to a rowof the matrix H). Hereinafter the set of control nodes connected to thevariable node n by an edge of the graph will be denoted H(n) and all thevariable nodes connected to the control node m will be denoted H(m).

We shall suppose hereinafter that the symbols constituting a code wordare binary and represented by +1,−1, the bit “0” being conventionallyassociated with the symbol +1 and the bit “1” with the symbol −1. Forexample, the transmission channel may be a binary symmetric channel orBSC, or a binary channel disturbed by an additive white Gaussian noise(AWGN).

A code word may be represented by a vector x of size N, the elements ofwhich belong to {1+1,−1}, satisfying the parity equations, that is tosay Hx=(+1, +1, . . . , +1)^(T) with the aforementioned conventions. Acode word x is obtained from an information word a by the equation x=aGwhere G is the generating matrix of the code satisfying the equationH·G^(T)=0, where G^(T) is the transpose of the matrix G.

If y=(y₁, . . . , y_(N))^(T) is noted, the observable representing theword to be decoded (obtained for example by demodulating the receivedsignal or read from a recording medium), the decoding in the sense ofthe maximum likelihood (ML decoding) is equivalent to the search for thecode word x=(x₁, . . . , x_(N))^(T) having the maximum correlation withthe vector y.

The GDBF decoding method defines, to do this, an objective function,E(x), also referred to as an energy function, by:

$\begin{matrix}{{{E(x)}\bullet\alpha{\sum\limits_{n = 1}^{N}{x_{n}y_{n}}}} + {\sum\limits_{m = 1}^{M}{\prod\limits_{n \in {H{(m)}}}x_{n}}}} & (1)\end{matrix}$

The first term of the objective function is none other than thecorrelation (weighted by the coefficient α>0) between the vector x andthe signal received, the second term representing the sum of thesyndromes of x. This second term is maximum and equal to M when x is acode word. The multiplying coefficient α controls the contribution ofthe correlation term to the objective function. If the vector x* thatmaximises the objective function is a code word, this is necessarily thesolution of the decoding in the sense of the maximum likelihood.

The approach proposed in the aforementioned article by T. Wadayamaconsists of maximising the objective function E(x) (or, in an equivalentfashion, minimising the cost function −E(x) using a variant of thegradient descent algorithm). More precisely, an iterative algorithm isused that minimises the cost function in successive directions. To dothis, a local energy function E_(n)(x) is introduced, defined by:

$\begin{matrix}{{{E_{n}(x)}{\bullet\alpha}\; x_{n}y_{n}} + {\sum\limits_{m \in {H{(n)}}}{\prod\limits_{n^{\prime} \in {H{(m)}}}x_{n^{\prime}}}}} & (2)\end{matrix}$

The first term relates to the correlation along the x axis x_(n), thesecond term is a sum of syndromes relating to all the variable nodes,connected to the variable node x_(n) by a parity equation.

For reasons of simplification, the local energy function E_(n)(x) in thedirection x will hereinafter be denoted E_(n). At each decodingiteration, a set F of the unreliable bits is defined. These bits arethose the local energy of which is lower than a predetermined threshold,E_(th). In other words, the bits weakly correlated with the receivedsignal and corresponding to a high probability of error are selected ashaving to be flipped. More precisely:

F□{x _(v) |E _(v) ≤E _(th)}  (3)

When the channel is a binary symmetric channel (BSC), it has beenproposed to take as a threshold value:

$\begin{matrix}{E_{th} = {\min\limits_{{n = 1},\ldots\;,N}\left( E_{N} \right)}} & (4)\end{matrix}$

In other words, the set F then consists, at each iteration, of the bitsminimising the local energy function.

Alternatively, it has been proposed to use a fixed or adaptive thresholdvalue, then dependent on the index of the iteration.

FIG. 1 shows schematically the flow diagram of a GDBF decoding methodfor decoding an LDPC code.

The main steps of the decoding method have been summarised therein.

At the step 110, a first estimation is made of the code word x from anobservable y representing the word to be decoded. For example, if thevector y has as its elements log likelihood ratios (LLRs),

${y_{n} = {\log\frac{\Pr\left( {x_{n} = \left. {+ 1} \middle| r \right.} \right)}{\Pr\left( {x_{n} = \left. {- 1} \middle| r \right.} \right)}}},{n = 1},\ldots\;,N$

it will be possible to simply estimate the elements of x byx_(n)=sgn(y_(n)) where n=1, . . . , N and sgn(y_(n)) is the sign ofy_(n)(sgn(y_(n))=+1 if y_(n)>0 and sgn(y_(n))=1 if y_(n)<0).

Next an iterative decoding loop is entered.

First of all at 120 a calculation is made of the syndrome of x, in otherwords of

${\prod\limits_{n \in {H{(m)}}}x_{n}},{m = 1},\ldots\;,{M.}$

It is checked at 130 whether the syndrome is zero, in other words herewhether each of the parity equations is satisfied:

${{\prod\limits_{n \in {H{(m)}}}x_{n}} = {+ 1}},{\forall{m \in {\left\{ {1,\ldots\;,M} \right\}.}}}$

If so, the decoding algorithm stops by supplying the code word x at 135.

If not, it is determined at 140 whether the maximum number of iterationshas been reached. If such is the case, the algorithm stops at 145 byproviding an error indication.

On the other hand, if the maximum number of iterations is not reached,the local energy values E_(n), n=1, . . . , N are calculated at 150.

The set F of bits to be flipped is deduced therefrom at the step 160. Todo this, the bits the local energy values of which are lower than athreshold value E_(th) are determined, as explained above.

At the step 170, the bits of the set F are flipped, in other wordsx_(v)=−x_(v), ∀x_(v)∈F and then a new iteration is implemented byreturning to the step 120.

As indicated previously, the drawback of the GDBF decoding method liesin the presence of a large number of local extrema (local minima of thecost function or local maxima of the energy function). The behaviour ofthe decoder being purely deterministic, it may then run throughindefinitely (in the absence of any stop criterion relating to thenumber of iterations) a sequence of local extrema or even remain lockedon one of them.

The PGDBF and NGDBF methods remedy this difficulty by introducing arandomisation mechanism in the determination of the bits to be flipped.

The PGDBF method was described in the article by O. Al Rasheed et al.entitled “Fault-tolerant probabilistic gradient-descent bit flippingdecoder”, published in IEEE Comm. Letters, vol. 18, no. 9, pp.1487-1490, 2014.

It consists, as in the GDPF method, in determining, at each iteration,the set F of bits the local energy of which is below a predeterminedthreshold value and then flipping each of the bits of F with aprobability 0<p<1, p being a parameter of the algorithm.

The NGDBF method was described in the article by G. Sundararajan et al.entitled “Noisy gradient descent bit-flip decoding for LDPC codes”,published in IEEE Trans. on Comm., vol. 62, no. 10, pp. 3385-3400, 2014.

In this method, the randomisation is introduced in the determination ofthe set F itself, this then being defined by:

F={x _(v) |E _(v) +Z _(v) ≤E _(th)}  (5)

where Z_(v)□N(0,σ²) is a centred Gaussian random variable of varianceσ², σ² being a parameter of the algorithm.

As in the GDBF method, all the bits of F are then flipped.

If the PGDBF and NGDBF decoding methods have better error correctionperformance than the GDBF decoding method because of their ability todepart from the local extrema, they do however not equal the performanceof the decoding methods of the message passing type (BP or Min-Sum forexample).

The aim of the present invention is consequently to propose a decodingmethod of the GDBF type, randomised or not, that makes it possible todecode an LDPC code with error correction performance close to that ofmessage-passing decoding messages or even better than these, withoutbeing substantially more complex than the GDBF decoding methods.

DESCRIPTION OF THE INVENTION

The present invention is defined by a method for decoding an LDPC coderepresented by a Tanner graph comprising N variable nodes and M controlnodes, each control node being associated with a parity constraintrelating to a plurality of variable nodes, said decoding methodoperating on an observable (y) representing the word to be decoded andproceeding by successive iterations, each iteration operating on anestimated word (x) and, if the estimated word is not a code word,determining a set ({tilde over (F)}) of the least reliable bits of thisword in order to be flipped before the following iteration, the leastreliable bits of the estimated word being determined as those where thevalue of a local energy function ({tilde over (E)}_(n)) is less than athreshold value, the local energy function of a bit comprising a firstcomponent proportional to the correlation between this bit and acorresponding element of the observable, a second component representingthe number of non-satisfied constraints in which said bit is involved,said method being original in that the local energy function furthercomprises a third component, referred to as an inertial component,decreasing with the number (

_(n)) of iterations performed since the last flipping of this bit.

According to a first embodiment, each bit in the set ({tilde over (F)})of the least reliable bits is flipped before the following iteration.

According to a second embodiment, each bit in the set ({tilde over (F)})of the least reliable bits is flipped with a predetermined probabilityp, 0<p<1, before the following iteration.

According to a third embodiment, to determine the set ({tilde over (F)})of the least reliable bits, a random noise of predetermined variants(σ²) is added to the value of the local energy function ({tilde over(E)}_(n)) before comparison with said threshold value.

Advantageously, the threshold value is determined from the minimum valueof the local energy function on the bits of the estimated word,increased by a predetermined margin δ≥0.

Said threshold value may be adaptive and be a function of the totalnumber of iterations performed since the start of decoding.

Preferably, the inertial component of the local energy function of a bitis a decreasing linear function of the number of iterations performedsince the last flipping of this bit.

Alternatively, the inertial component of the local energy function of abit is a linear function defined piecewise.

Preferably the local energy function of a bit is zero beyond apredetermined value L.

In the latter case, in an initialisation step, the number

_(n) representing the number of iterations performed since the lastflipping of a bit can be initialised to a value

_(max)≥L, this number being set to zero as soon as this bit is flipped,and incremented at each iteration until it reaches said value L.

BRIEF DESCRIPTION OF THE DRAWINGS

Other features and advantages of the invention will emerge from readinga preferential embodiment of the invention described with reference tothe accompanying figures, among which:

FIG. 1 shows schematically a flow diagram of a GDBF decoding method fordecoding an LDPC code, known from the prior art;

FIG. 2 shows schematically a flow diagram of a method for decoding anLDPC code according to one embodiment of the present invention;

FIGS. 3A and 3B illustrate the performances of decoding methods of theGDBF type known from the prior art and of a decoding method according toan embodiment of the present invention, in the case of a binarysymmetric channel, respectively for a first and for a second example ofan LDPC code;

FIGS. 4A and 4B illustrate the performances of decoding methods of theGDBF type known from the prior art and of a decoding method according toan embodiment of the present invention in the case of an AWGN channel,respectively for a first and for a second example of an LDPC code.

DETAILED DESCRIPTION OF PARTICULAR EMBODIMENTS

We shall consider hereinafter a method for GDBF decoding of an LDPCcode, in the form of a randomised variant such as PGDBF or NGDBF, asdescribed in the introductory part.

The idea at the basis of the invention is to add an inertial componentto the local energy function. The purpose of this component is to reducethe probability of a bit being flipped if it has already recently beenflipped during a previous iteration. In other words, an inertia effectis introduced obliging the iterative decoding algorithm to seek themaximum of the energy function while keeping a certain directionalcoherence. This component makes it possible to avoid oscillationsbetween positions corresponding to local extrema.

More precisely, the new energy function can be expressed in the form,keeping the previous notations:

$\begin{matrix}{{{{\overset{\sim}{E}}_{n}(x)}{\bullet\alpha}\; x_{n}y_{n}} + {\sum\limits_{m \in {H{(n)}}}{\prod\limits_{n^{\prime} \in {H{(m)}}}x_{n^{\prime}}}} + {\rho\left( \ell_{n} \right)}} & (6)\end{matrix}$

where

_(n)≥1 is defined as the number of iterations since the last flipping ofthe bit x_(n) and ρ(

_(n)) is the inertial component that is associated with l_(n). Thus,l_(n)=1 if the bit x_(n) was flipped at the last iteration,

_(n)=2 if it was flipped at the last iteration but one, etc.Hereinafter, the local energy function in the direction of x_(n) willmore simply be noted {tilde over (E)}_(n).

It is supposed that the aforementioned inertial component has a memoryeffect limited to a predetermined number L of iterations. It canconsequently be represented in the form of a vector p of size L, i.e.ρ=(ρ(1), ρ(2), . . . , ρ(L)), with ρ(1)≥ρ(2)≥ . . . ≥ρ(L)>0, on theunderstanding that ρ(

_(n))=0 for l_(n)>L.

At the start of the decoding, the number

_(n) of iterations since the last iteration of the bit, x_(n), isinitialised to L+1, this for n=1, . . . , N. If the bit x_(n) is flippedduring an iteration, the corresponding number

_(n) is set to zero. It is systematically incremented by 1 at the startof each iteration without however being able to exceed the maximumvalue, L+1. In other words, if the bit x_(n) was flipped at the previousiteration, the value

_(n)=1 is taken into account at the current iteration for calculatingthe local energy function.

According to a first embodiment of the invention, at the end of eachiterative decoding iteration, a set {tilde over (F)}□{x_(v)|{tilde over(E)}_(v)≤{tilde over (E)}_(th)} of unreliable bits is determined where{tilde over (E)}_(th) is a fixed or adaptive threshold value, determinedas specified below. The bits of F are next flipped in preparation forthe following iteration.

According to a second embodiment of the invention, corresponding to thePGDBF variant, each bit of F is flipped randomly, with a probability0<p<1 where p is a parameter of the algorithm. In other words, for eachbit belonging to {tilde over (F)}, a random variable u is drawn, forexample equally distributed over the interval [0,1], the bit in questionbeing flipped if u<p and being kept unchanged otherwise.

According to a third embodiment of the invention, corresponding to theNGDBF variant, the set F of the unreliable bits are randomised, i.e.{tilde over (F)}□{x_(v)|{tilde over (E)}_(v)+Z_(v)≤{tilde over(E)}_(th)} where Z_(v)□N(0,σ²) is a centred Gaussian random variable ofvariance σ², σ² being a parameter of the algorithm. In other words, toeach energy value of a bit a random noise sample is added, for example acentred Gaussian noise of variance σ², the energy value to which noiseis thus added being compared with said threshold value. In an equivalentfashion, the energy value of each bit is compared with the sample of aGaussian random variable centred on {tilde over (E)}_(th) and ofvariance σ², a sample being drawn at each bit. Typically σ□{tilde over(E)}_(th) will be selected.

FIG. 2 shows schematically a flow diagram of a method for decoding anLDPC code according a first embodiment of the present invention.

At the step 210, an initial estimation is made of the code mode x froman observable y representing the word to be decoded as at step 110. Asbefore, the vector y can consist of values of LLRs and the binary word xconsists of corresponding sign values.

At step 215, the number

_(n) of iterations since the last flipping is also initialised, for eachof the bits x_(n), n=1, . . . , N. More precisely,

_(n)=L+1, n=1, . . . , N.

An iterative loop is next entered, wherein:

The syndrome of x is calculated at 220, i.e. c_(m), m=1, . . . , M.

At 230, it is checked from the syndrome whether x is a code word, thatis to say whether c_(m)=+1, ∀m∈{1, . . . , M} or, in an equivalentfashion, whether

${\sum\limits_{m = 1}^{M}c_{m}} = {M.}$

If such is the case, the decoding algorithm supplies the code word x at235.

On the other hand, if the word is erroneous, it is determined at 240whether the maximum number of iterations is reached.

If so, an error indication is generated at 245.

If not, the step 250 continues by incrementing the values

_(n) of 1 without however exceeding the value L. In other words,

_(n)=min(

_(n)+1,L).

At the step 260, local energy values are calculated, {tilde over(E)}_(n), n=1, . . . , N, from expression (6).

The set {tilde over (F)} of the least reliable bits are next determinedat step 270. The set {tilde over (F)} consists of bits the local energyvalues of which are lower than a threshold value {tilde over (E)}_(th),calculated for example as

${{\overset{\sim}{E}}_{th} = {{\min\limits_{{n = 1},\ldots\;,N}\left( E_{n} \right)} + \delta}},$

where δ≥0 is a predetermined margin.

At the step 280, the bits of x belonging to the set {tilde over (F)} areflipped and step 220 is returned to for a new iteration.

A person skilled in the art will understand that the second embodimentdiffers from the first in that, at the step 270, the bits of the set{tilde over (F)} are not systematically flipped but are flipped onlywith a predetermined probability p as indicated above.

In a similar fashion, the third embodiment differs from the first inthat, at the step 260, in order to determine whether a bit belongs tothe set {tilde over (F)}, a random noise sample is added to the localenergy of the bit, for example a Gaussian random noise of variance σ²,before comparing it with the threshold value, {tilde over (E)}_(th).

The elements of the vector representing the inertial component, ρ=(ρ(1),ρ(2) . . . , ρ(L)), can be determined in various ways.

First of all, the elements of the vector p can be determined bysimulation of the Monte-Carlo type so as to optimise the errorcorrecting performance of the decoding method.

Alternatively, they can be obtained by a reinforcement learning methodwherein each state corresponds to a vector p (the elements ρ(1), ρ(2), .. . , ρ(L) are assumed to be discretised), a reward being allocated whenthe decoding supplies a code word, the reward being able to beproportional to the difference P_(max)−P where P_(max) is the maximumnumber of iterations in the stop criterion and P is the number ofiterations performed in order to obtain the code word.

Alternatively again, it will be possible to proceed with an exhaustivesearch in a restricted space.

More precisely, if it is noted that {tilde over (E)}_(n)=E_(n)+ρ(

_(n)) and if it is assumed that the elements of the vector y arediscretised, that is to say take their values in the set {−Q_(p), . . ., −Q₁, 0, Q₁, . . . , Q_(p)}, the value of the local energy functionE_(n) associated with the variable x_(n) is bounded by:

−(αQ _(p) +d _(v))≤E _(n) ≤αQ _(p) +d _(v)  (7)

where d_(v) is the maximum degree of a variable node in the Tannergraph.If it is supposed now that at least one parity equation associated witha control node is unsatisfied (failing that all the parity equationswould be satisfied and the word would be a code word), there is at leastone variable node x_(n) for which:

E _(n) ≤αQ _(p)+(d _(v)−2)  (8)

insofar as an error on x_(n) results in a difference of 2 in a value ofc_(m), m∈H(n).

The result is that the minimum energy value

$E_{\min} = {\min\limits_{{n = 1},\ldots\;,N}\left( E_{n} \right)}$

also satisfies:

E _(min) ≤αQ _(p)+(d _(v)−2)  (9)

Since the purpose of the inertial component is to increase the energy ofthe bits that have recently been flipped, it can be supposed that theminimum E_(min) is reached for a bit that has not been flipped duringthe last L iterations, that is to say the inertial component of which iszero ρ(

_(n))=0.

As a result, the threshold value {tilde over (E)}_(th) satisfies:

{tilde over (E)} _(th) ≤αQ _(p)+(d _(v)−2)+δ  (10)

If now ρ_(max)=2αQ_(p)+(2d_(v)−2)+δ+ε, is defined, it will be understoodthat, as soon as a variable node x_(n) has a local energy value E_(n)with an inertial component ρ(

_(n))≥ρ_(max):

{tilde over (E)} _(n) =E _(n)+ρ(

_(n))≥αQ _(p)+(d _(v)−2)+δ+ε>{tilde over (E)} _(th)  (11)

and therefore that x_(n) will not be flipped during the currentiteration.

It can therefore be concluded from this that ρ(

)≤ρ_(max),

=1, . . . , L insofar as a value higher than ρ_(max) would prevent anyflipping of a bit as soon as the number of iterations since the lastflipping thereof would be equal to

.

This property makes it possible to restrict the search for possiblevalues of ρ(1), ρ(2), . . . , ρ(L) to a restricted zone of (□⁺)^(N),namely the one defined by:

ρ_(max)≥ρ(1)≥ρ(2)≥ . . . ≥ρ(L)>0  (12)

Thus, it will be possible initially to fix a value of L and then make asearch by brute force among the L-tuplets ρ(1), ρ(2), . . . , ρ(L) ofdiscretised values satisfying (12) and leading to the smallest errorrate. Alternatively, it will be possible to use a genetic algorithm withoperations of mutation, combination and selection of the vectors ρ inorder to seek the one corresponding to the lowest error rate.

In all cases this optimisation of the elements of ρ can be done once andfor all offline.

According to another approach, it will be possible to express theinertial component ρ(

) as a linear or polynomial function of the number f of iterations sincethe last flipping. For example, in the linear case the inertialcomponent will have the following form:

ρ(

)=−a

+b,

=1, . . . ,L  (13)

with a,b>0. The maximum value, ρ_(max), of the inertial component willthen be selected so that:

ρ_(max)≥ρ(1)=−a+b  (14-1)

and the minimum value of this component must be positive, i.e.:

ρ(L)=−aL+b>0  (14-2)

Finally, optimisation of the elements of ρ will be reduced to the searchfor the parameters a,b.

A person skilled in the art will be able to envisage other parametricexpressions of ρ(

) without departing from the scope of the present invention. Thus ρ(

) will be able to be sought as a decreasing polynomial expression on[1,L].

For high values of L, it will also be possible to define the function ρ(

) piecewise, for example as a linear or even constant function bypieces, in which case:

ρ(1)= . . . =ρ(

₁)>ρ(

₁+1)= . . . =ρ(

₂)> . . . >ρ(

_(s)+1)= . . . =ρ(L)>0  (15)

with 1<

₁<

₂ . . . <

_(s)<L defining the bounds of the intervals in question.

The differences in performance between the method for decoding LDPC codeaccording to the present invention and the methods known from the priorart are illustrated by means of FIGS. 3A-3B and 4A-4B.

The first LDPC code was a regular code (4,8), of rate R=0.5, of lengthN=1296 bits. It will be recalled that a code is regular when all thevariable nodes have the same degree, d_(v), and all the control nodesalso have the same degree, d_(c), in the Tanner graph. The degrees ofthe variable nodes and of the control nodes were respectively d_(v)=4and d_(c)=8.

The second LDPC code was a regular code (6,32), of rate R=0.84, oflength N=2048 bits. The degrees of the variable nodes and of the controlnodes were respectively d_(v)=6 and d_(c)=32. This code comes from IEEE802.3an (Ethernet 10 Gbits/s on twisted pair).

The decoding methods known from the prior art have been shown in thefigures by their acronyms, namely:

BP, floating point: decoding by belief propagation, floating-pointcalculation;

MS, quant (4,6): decoding by means of the Min-Sum algorithm with 4-bitmessages;

MS, floating point: decoding by means of the Min-Sum algorithm,floating-point calculation;

BF: original method by bit flipping (Gallagher);

GDBF: gradient descent bit flipping decoding method;

PGDBF: probabilistic gradient descent bit flipping method.

The examples of decoding methods according to the present invention arerepresented by:

GDBF-w/M: GDBF with inertial component (with momentum)

PGDBF-w/M: PGDBF with inertial component (with momentum)

In the case of FIGS. 3A and 3B, it has been supposed that the channelwas binary symmetric and the word error rate or WER has been shown as afunction of the probability of switching of a bit onto the channel (BSCcrossover probability).

The correlation coefficient (GDBF/PGDBF methods with or without inertia)was selected so that α=1.0 for the first LDPC code and α=2.0 for thesecond LDPC code.

The margin 3 in the threshold value E (GDBF/PGDBF methods with orwithout inertia) was selected as zero whether for the first or thesecond LDPC code.

The probability of flipping p in the PGDBF and PGDBF-w/M methods wasselected so that p=0.9 for decoding the first LDPC code and p=0.8 fordecoding the second LDPC code.

For decoding the first LDPC code with the GDBF-w/M and PGDBF-w/Mmethods, the inertial component was the dimension L=3 with ρ=[4 2 1].

For decoding the second LDPC code with the GDBF-w/M and PGDBF-w/Mmethods, the inertial component was the dimension L=4 with ρ=[4 3 2 1].

It will be noted that introducing an inertial component substantiallyimproves the GDBF and PGDBF decodings. Furthermore, the GDBF-w/Mdecoding has better performance than the PGDBF decoding, even though thefirst does not use randomisation for flipping. Furthermore, thePGDBF-w/M decoding of the first or second code does not show any errorfloor as far as WER levels of around 10⁻⁷. Finally, decoding the secondLDPC code by the GDBF-w/M method or by the PGDBF-w/M method haveequivalent performances, these performances being of the same order as,or even better than, those of the belief propagation BP method in theregion of the error floor.

In the case of FIGS. 4A and 4B, it has been supposed that the channelwas of the AWGN type (in other words affected by Gaussian additive whitenoise) and the word error rate (WER) has been shown.

The correlation coefficient (GDBF/PGDBF methods with or without inertia)was selected so that α=1.8 for the first LDPC code and α=4.5 for thesecond LDPC code.

The margin δ in the threshold value {tilde over (E)}_(th) (GDBF/PGDBFmethods with or without inertia) was selected equal to 1.1 for the firstLDPC code and 1.2 for the second LDPC code.

The flipping probability p in the PGDBF and PGDBF-w/M methods wasselected so that p=0.9 for decoding the first LDPC code and p=0.8 fordecoding the second LDPC code.

For decoding the first LDPC code with the GDBF-w/M and PGDBF-w/Mmethods, the inertial component was the dimension L=7 with ρ=[2 2 2 2 21 1].

For decoding the second LDPC code with the GDBF-w/M and PGDBF-w/Mmethods, the inertial component was the dimension L=4 with ρ=[3 3 2 1].

It will be noted that the GDBF-w/M and PGDBF-w/M decodings havesubstantially the same performances in the waterfall region and evenexceed those of the floating-point MS decoding even if the GDBF-w/Mdecoding has lower performance than PGDBF-w/M in the floor region. Theperformance of the PGDBF-w/M decoding approaches (first LDPC code) oreven attains (second LDPC code) those of the belief propagation decodingwith floating-point calculation (floating-point BP).

In general, the GDBF or PGDBF decoding methods with inertial componentmake it possible to obtain performances (in terms of WER as a functionof the signal to noise ratio) comparable to those of abelief-propagation (BP) decoding method or even better in the errorfloor region. The decoding methods according to the invention aretherefore particularly advantageous in the cases where the error flooris very low, that is to say when the Tanner graph has a high degree ofconnectivity d_(c).

1. A method for decoding an LDPC code represented by a Tanner graphcomprising N variable nodes and M control nodes, each control node beingassociated with a parity constraint relating to a plurality of variablenodes, said decoding method operating on an observable (y) representingthe word to be decoded and proceeding by successive iterations, eachiteration operating on an estimated word (x) and, if the estimated wordis not a code word, determining a set ({tilde over (F)}) of the leastreliable bits of said word in order to be flipped before the followingiteration, the least reliable bits of the estimated word beingdetermined as those where the value of a local energy function ({tildeover (E)}_(n)) is less than a threshold value, the local energy functionof a bit comprising a first component proportional to the correlationbetween said bit and a corresponding element of the observable, a secondcomponent representing the number of non-satisfied constraints in whichsaid bit is involved, wherein the local energy function furthercomprises a third component, referred to as an inertial component,decreasing with the number (

_(n)) of iterations performed since the last flipping of said bit. 2.The method for decoding an LDPC code according to claim 1, wherein eachbit in the set ({tilde over (F)}) of least reliable bits is flippedbefore the following iteration.
 3. The method for decoding an LDPC codeaccording to claim 1, wherein each bit in the set ({tilde over (F)}) ofleast reliable bits is flipped with a predetermined probability p,0<p<1, before the following iteration.
 4. The method for decoding anLDPC code according to claim 1, wherein, to determine the set ({tildeover (F)}) of least reliable bits, a random noise of predeterminedvariance (σ²) is added to the value of the local energy function ({tildeover (E)}_(n)) before comparison with said threshold value.
 5. Themethod for decoding an LDPC code according to claim 1, wherein thethreshold value is determined from the minimum value of the local energyfunction on the bits of the estimated word, increased by a predeterminedmargin δ≥0.
 6. The method for decoding an LDPC code according to claim1, wherein the threshold value is adaptive and is a function of thetotal number of iterations implemented since the start of decoding. 7.The method for decoding an LDPC code according to claim 1, wherein theinertial component of the local energy function of a bit is a decreasinglinear function of the number of iterations implemented since the lastflipping of said bit.
 8. The method for decoding an LDPC code accordingto claim 1, wherein the inertial component of the local energy functionof a bit is a linear function defined piecewise.
 9. The method fordecoding an LDPC code according to claim 1, wherein the local energyfunction of a bit is zero beyond a predetermined number L of iterations.10. The method for decoding an LDPC code according to claim 9, wherein,in an initialisation step, the number

_(n) representing the number of iterations implemented since the lastflipping of a bit is initialised to a value

_(max)≥L, said number being set to zero as soon as said bit is flipped,and incremented at each iteration until said value L is reached.